package ligueBaseball;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Arbitre {

    private PreparedStatement stmtExiste;
    private PreparedStatement stmtMaxId;
    private PreparedStatement stmtInsert;
    private PreparedStatement stmtTous;
    private Connexion cx;

    public Arbitre(Connexion cx) throws SQLException {
        this.cx = cx;

        stmtExiste = cx.getConnection().prepareStatement("select  * from arbitre where arbitrenom = ? and arbitreprenom = ?");
        stmtInsert = cx.getConnection().prepareStatement("insert into arbitre (arbitreid, arbitrenom, arbitreprenom) " +
                "values (?,?,?)");
        stmtMaxId = cx.getConnection().prepareStatement("SELECT max(arbitreid) FROM arbitre;");
        stmtTous = cx.getConnection().prepareStatement("select * from arbitre");

    }

    public int creer(String nom, String prenom) throws SQLException {
        int id = getMaxId();
        stmtInsert.setInt(1, id);
        stmtInsert.setString(2, nom);
        stmtInsert.setString(3, prenom);
        stmtInsert.executeUpdate();
        return id;
    }

    public boolean existe(String nom, String prenom) throws SQLException {
        stmtExiste.setString(1, nom);
        stmtExiste.setString(2, prenom);
        ResultSet rset = stmtExiste.executeQuery();
        boolean membreExiste = rset.next();
        rset.close();
        return membreExiste;
    }

    String afficherTous() throws SQLException {
        ResultSet rset = stmtTous.executeQuery();
        String tous = null;
        if (rset.next()) {
            tous = "La liste d'arbitres est la suivante : \n";
            do {
                tous += rset.getString(2);
                tous += " ";
                tous += rset.getString(3);
                tous += "\n";
            } while (rset.next());

        } else {
            tous = "Il n'y a pas des arbitres dans la liste.";
        }
        rset.close();
        return tous;
    }

    public Connexion getCx() {
        return cx;
    }

    public void setCx(Connexion cx) {
        this.cx = cx;
    }

    private int getMaxId() throws SQLException {
        ResultSet rset = stmtMaxId.executeQuery();
        rset.next();
        int id = rset.getInt(1) + 1;
        rset.close();
        return id;
    }
}
